// quando lo specificatore d'accesso alla classe è public

// tutti i membri pubblici della classe base
// diverranno pubblici della classe derivata

// tutti i membri privati della classe base
// saranno non accessibili dai membri della classe derivata

		// invece

// quando lo specificatore d'accesso alla classe è private

// tutti i membri pubblici e protetti della classe base
// diverranno privati della classe derivata


#include <iostream>
using namespace std;

class base
{
int i,j;
public:
void imposta (int a, int b) {i=a; j=b;}
void mostra() {cout << i << " " << j << "\n";}
};

class derivata : public base
{
int k;
public:
derivata (int x) {k=x;}
void mostrak() {cout << k << "\n";};
};


int main()
{
derivata ob(3);
ob.imposta(1,2); // accesso ad un mebro della classe base
ob.mostra(); // accesso ad un mebro della classe base
ob.mostrak(); // utilizzo di un membro della classe derivata

return 0;
}

/*
1 2
3
Press any key to continue
*/